package com.xm.entity;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data // Lombok annotation for getters, setters, equals, hash, and toString
@NoArgsConstructor // Lombok annotation to create no-args constructor
@AllArgsConstructor // Lombok annotation to create all-args constructor
public class SearchAppResponse {

    @JsonProperty("code")
    private int code;

    @JsonProperty("msg")
    private String msg;

    @JsonProperty("data")
    private List<Item> data;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Item {
        @JsonProperty("image")
        private String image;

        @JsonProperty("sellingCount")
        private Integer sellingCount;

        @JsonProperty("name")
        private String name;

        @JsonProperty("platformName")
        private String platformName;

        @JsonProperty("platformId")
        private Integer platformId;

        @JsonProperty("price")
        private Double price;

        @JsonProperty("id")
        private Integer id;

        @JsonProperty("minPriceGoodsId")
        private Integer minPriceGoodsId;

        @JsonProperty("type")
        private Integer type;

        @JsonProperty("platformIcon")
        private String platformIcon;

        @JsonProperty("isCrown")
        private Boolean isCrown;

        @JsonProperty("illegalCount")
        private Integer illegalCount;

        @JsonProperty("uid")
        private String uid;

        @JsonProperty("comingFromThirdParty")
        private Boolean comingFromThirdParty;

        @JsonProperty("goodsType")
        private String goodsType;

        @JsonProperty("total")
        private Integer total;

        @JsonProperty("source")
        private Integer source;

        @JsonProperty("dealType")
        private String dealType;

        @JsonProperty("presellDate")
        private String presellDate;

        @JsonProperty("sellStatus")
        private String sellStatus;

        @JsonProperty("sellTime")
        private String sellTime;

        @JsonProperty("isArchive")
        private Boolean isArchive;

        @JsonProperty("auctionEndTime")
        private String auctionEndTime;

        @JsonProperty("publishTime")
        private String publishTime;

        @JsonProperty("isPassIn")
        private Boolean isPassIn;

        @JsonProperty("maxOfferAmount")
        private Double maxOfferAmount;

        @JsonProperty("offerUserNum")
        private Integer offerUserNum;

        @JsonProperty("collectionNumber")
        private Integer collectionNumber;

        @JsonProperty("archiveId")
        private Integer archiveId;

        @JsonProperty("description")
        private String description;

        @JsonProperty("introduce")
        private String introduce;

        @JsonProperty("wantBuyMaxPrice")
        private Double wantBuyMaxPrice;

        @JsonProperty("maxWantBuyPriceGoodsId")
        private Integer maxWantBuyPriceGoodsId;

        @JsonProperty("wantBuyCount")
        private Integer wantBuyCount;

        @JsonProperty("count")
        private Integer count;

        @JsonProperty("goodsWantBuyCount")
        private Integer goodsWantBuyCount;

        @JsonProperty("wantBuyMaxPriceTime")
        private String wantBuyMaxPriceTime;

        @JsonProperty("isPayBond")
        private Boolean isPayBond;
    }
}